mixpanelからS3にデータをエクスポートしてみた!
ミックスパネラーの國崎です。
今回はmixpanelのデータをAmazon S3にエクスポートする手順を紹介します。
前提条件
- S3にバケットは作成済み
- mixpanelにデータは投入済み
- mixpanelのサービスアカウントは作成済み
- mixpanelでAnalyst以上の権限を持っている
あと今回の連携はmixpanelのデータパイプラインというオプションを使います。
こちらは有料のオプションになるのですが、trial枠もあるので今回の検証はtrial枠での活用例となります。
AWSコンソールでポリシーとロールの設定
今回S3ですでにバケットは作成済みの前提ですので、ポリシー作成から手順を紹介します。
ポリシーの作成
AWSコンソールのIAM>ポリシー>ポリシーを作成をクリック。
JSONで以下のコードを設定します。
BUCKET_NAMEには作成済みのバケット名を入れます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SomeSidYouChoose", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::<BUCKET_NAME>", "arn:aws:s3:::<BUCKET_NAME>/*" ] } ] }
ロールの設定
別のAWSアカウントにラジオボタンを合わせて485438090326を入力。
以下のJSONに置き換えます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::485438090326:user/mixpanel-export" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
これでAWSコンソールの作業は終了です。
mixpanelでパイプラインの作成
mixpanelでパイプラインの作成をします。
パイプラインの以下リストからRAW AMAZON S3 PIPELINEを選択。
パイプラインには以下の項目があるのでそれぞれ入力します。
- project_id(必須)…プロジェクトのID
- type(必須)…s3-rawで固定
- trial(必須)…トライアル枠か否か選択
- data_source(必須)…eventsで固定
- from_date(必須)…データ書き出しの起点日
- to_date(任意)…いつまでのデータ書き出すか
- frequency(必須)…データ書き出しの頻度
- events(任意)…書き出すeventsのホワイトリスト
- where(任意)…イベントのフィルター
- data_format(必須)…JSONで固定
- s3_bucket(必須)…書き出し先のバケット名
- s3_region(必須)…書き出し先のリージョン
- s3_role(必須)…今回設定したロール(例:arn:aws:iam:::role/example-s3-role)
- s3_prefix(任意)…エクスポートのパスのプレフィックス
- s3_encryption(任意)…s3 バケットによって使用される保存時の暗号化
今回は必須項目を入力して進めました。
上記入力後、ページ右上でサービスアカウントの指定をします。
補足ですがプロジェクトのIDやサービスアカウントはmixpanelのProject Settingsから確認できます。
パイプラインの項目とサービスアカウントの入力が終わったらサービスアカウントの下にあるTry It!をクリックし緑のアイコンが出たらデータのエクスポートが成功してます。
S3を確認
再びAWSコンソールに戻りS3のバケットを確認してみるとmixpanelのプロジェクトIDでフォルダが作成されていました。
リアルタイムでの確認はできていませんが、数分以内には作成されていたので連携が成功してから書き出しまでそんなに時間はかかっていないと思います。
実際の中身のデータも確認してみると無事イベントデータの書き出しがされていました。
データのエクスポートを止めるor削除する方法
今回連携したデータのエクスポートを止めたり削除するにはパイプラインの名前とプロジェクトIDが必要になってきます。
パイプラインの名前はmixpanelのIntegrationsから確認できます。
このパイプライン名とパイプライン設定の時に使ったプロジェクトIDをPause Pipeline/Deleate Pipelineに入力すればデータのエクスポートを止めたり削除したりできます。
以上がmixpanelとS3にデータをエクスポートする手順の紹介となります。
以下は今回参考にしたmixpanelの公式ドキュメントになりますので、他にも色々知りたい方はぜひご覧ください。
クラスメソッドが行っているmixpanelの支援
クラスメソッドではmixpanelをすでにお使いのお客様にも以下の支援サービスを提供しております。
- PoC…検証環境提供
- プランニング支援…KPI設計の支援/QA対応
- 実装支援…開発の支援/SaaS連携支援
- 伴走支援…定例など
mixpanelのKPI設計は以下記事でも紹介している専用の測定フレームワークを用いたプランニング支援をさせていただきます。
mixpanelの測定フレームワーク作り方のコツ!サンプルを例に解説!
また実装いただいた後の伴走支援では実際にお使いになられているお客様の課題感などをヒアリングさせていただき、ご要望に沿った内容での定例を設けさせていただき、成果につなげるための分析手法のご提案などをさせていただきます。
今回の記事を見てmixpanelについて詳細の話を聞きたい、興味を持ったという方はぜひぜひクラスメソッドまでお問い合わせください!!